#include <stddef.h>
#include <stdexcept>
#include "PointerKey.h"

PointerKey::PointerKey(void* pointer):
        pointer(pointer)
{
}
        
bool PointerKey::equals(IKey* k){
    // se hace sin dynamic_cast, más rápido pero más inseguro...
    return this->pointer == ((PointerKey *)k)->pointer;
}

int PointerKey::hash()
{
    // 16777619 es un primo grande para que los valores no se concentren
    // en números pares. Los punteros suelen ser múltiplos de 2, 4, 8, etc.
    return ((long) pointer) % 16777619;
}


